5. Алгоритм навигации робота
Автор
Команда plot!()
Попробуем создать несколько графиков в цикле
In [ ]:
plot()
for i = 1:5
plot!( 0:0.1:2π, sin.(i .+ collect(0:0.1:2π)) )
end
...где график?
Результатом этой ячейки был вывод конструкции for, которая возвращает nothing и ничего не выводится. Вот что нужно добавить:
In [ ]:
plot!()
Out[0]:
Кстати знаете, откуда берутся цвета графиков? Это стандартные цвета логотипа Julia

In [ ]:
plot( rand(5), c=3 ) # c=3 даст нам зеленый цвет
Out[0]:
Изменим цвет линии графика в каждой точке
Как сделать одну и ту же линию разноцветной?
In [ ]:
t = 0:0.1:2π
plot( t, sin.(t), lw=3, linez=range(0,1,length(t)), c=:hsv )
Out[0]:
Сейчас цвет линии зависит не от значения y, а от значения вдоль параметра t (параметрическая кривая...)
Аргумент clim позволит нам видоизменить цветовую шкалу
In [ ]:
t = 0:0.1:2π
plot( t, sin.(t), lw=3, linez=range(0,1,length(t)), c=:hsv, clim=(-1,2) )
Out[0]:
CartesianIndices
Нам потребуется эта функция чтобы выводить аннотации для каждой клетки карты
In [ ]:
my_map = rand(7,7)
vec_coords = CartesianIndices( size(my_map) )
Out[0]:
In [ ]:
ax = first.( Tuple.(vec_coords[:]) )
ay = last.( Tuple.(vec_coords[:]) )
az = reshape( my_map, 1, : )
heatmap( my_map', yflip=true )
for (x,y,z) in zip(ax,ay,az)
annotate!( x, y, text("$(convert(Int64, round(z)))",10,:cyan) );
end
plot!()
Out[0]:
Команда zip
Попарное сочетание элементов из каждого массива-аргумента
In [ ]:
collect( zip( [1,2,3], [4,5,6] ) )
Out[0]:
Функция повтора элемента: repeat
Базовая функция для создания массива путем циклического повтора некоторой последовательности (outer) или каждого ее элемента (inner).
In [ ]:
println(repeat( [1,2], inner = 5 ))
In [ ]:
println( repeat( [1,2], outer = 5 ))

